Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Кафедра АПЕПС Алгоритмізація та програмування 2: . Процедурне програмування ЗВІТ До лабораторної роботи № 4 «Списки» Варіант №24 Дата «31» Травня 2022 ЗАВДАННЯ: 1. Дослідити особливості створення одно- та дво-направлених списків. 2. Вивчити і реалізувати механізми додавання нових записів у список,  пошуку записів у списку за певними полями, видалення записів зі списку та редагування знайдених записів, а також збереження всього списку у файлі та зчитування списку із файлу до пам’яті з відновленням всіх зв’язків. 3. Розробити Блок-схему програмного алгоритму. 4. Оформити ЗВІТ до лабораторної роботи згідно вимог та методичних рекомендацій.   РЕЗУЛЬТАТ РОБОТИ: 1. Роздрукувати (вивести на екран) попередньо сформовані та підготовлені для запису в файл дані. 2. Роздрукувати (вивести на екран) результат виконання операції читання даних із файлу. 3. ЗВІТ до комп’ютерного практикуму для перевірки додати в Клас. 4. Програмний код (відкритий для редагування) розмістити на сайті Repl.it (посилання виключно через кнопку «+Invite »). Теоретичні відомості Структурою називається сукупність змінних, об’єднаних у єдине ціле, наприклад: struct myStruct { int i, j, k; double x, y; char s[32]; }; Декларація змінної в такому випадку буде мати вигляд: myStruct ss; Але значно частіше для цього застосовують динамічне створення таких структур: myStruct *pp; pp = malloc(sizeof(myStruct)); В такий спосіб будуються списки або більш складні конструкції. В такому підході використовується той факт, що полями структури можуть бути вказівники на таку ж структуру, наприклад для одно- або двонаправленого списку: struct data { // будь-які дані необхідні для конкретної задачі }; struct listElem { data dat; // дані в конкретному елементі списку listElem *next; //вказівник на наступний елемент списку listElem *prev; //вказівник на попередній елемент списку, якщо список двонаправлений } Однонаправлений список має тільки вказівник на наступний елемент списку, а двонаправлений має два вказівника на наступний і попередній. В однонаправленому списку можна рухатись лише від голови списку до хвоста, а в двонаправленому і від хвоста до голови. listElem *head = 0; // декларований вказівник на перший елемент списку listElem *curr = 0; // допоміжний вказівник, що використовується // для руху по списку Тепер можна будувати список із довільного числа елементів, зв’язаних між собою вказівниками. void addElem(listElem *h) { // Додає новий елемент в голову списку listElem* t; If (!h) { h = malloc(sizeof(listElem)); // Створення першого елементу списку h->next = 0; h -> prev=0; } else { // додавання нового елементу перед “головою” списку t = malloc(sizeof(listElem)); t->next = h; t->prev = 0; h ->prev = t; h = t; }; getData(h->dat); // функція заповнення структури даними }; Видалення списку відбувається у зворотньому порядку. Для доступу до списку необхідно, щоб був хоча б один вказівник на нього. У випадку однонаправленого списку це повинен бути обов’язково вказівник на “голову” списку, бо в однонаправленому списку неможливо перейти до попереднього елементу, а в двонаправленому хоча і варто дотримуватись цього ж правила, але не обов’язково, бо по такому списку можна рухатись в обох напрямках. Якщо завдяки помилковому коду раптом зникають всі вказівники на список – він стає недоступним, але продовжує займати пам’ять в купі, що приводить до досить складної для аналізу помилки, яка зветься “витік пам’яті”. Варіант завдання / Результати програми Вивід на екран монітора результату / / Висновок: Під час виконання цієї лабораторної було досліджено  особливості створення одно- та дво-направлених списків. Вивчено і реалізовано механізми додавання нових записів у список, пошук записів у списку, видалення записів, та редагування знайдених записів, а також збереження всього списку у файлі та зчитування списку із файлу до пам’яті з відновлен...
Антиботан аватар за замовчуванням

08.05.2023 11:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини